﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UA.Data;
using UA.Framework.Authorization;

namespace UA.Framework
{
    /// <summary>
    /// 表示当前应用程序运行环境
    /// </summary>
    public class SystemEnvironment
    {
        /// <summary>
        /// 获取或设置当前应用程序的默认配置文件名称。
        /// </summary>
        public static string CurrentConfigurationFileName
        {
            get { return AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; }
            set { AppDomain.CurrentDomain.SetupInformation.ConfigurationFile = value; }
        }


        /// <summary>
        /// 表示WEB应用程序在前端页面资源输出时，是否启用 WEB 资源文件(仅 JavaScript 和 Css 文件)自动压缩功能。
        /// 该属性配置项由 Web.config/configuration/appSettings/EnableOptimizations 参数指定。
        /// </summary>
        public static bool EnableOptimizations
        {
            get
            {
                var b = false;
                bool.TryParse(System.Configuration.ConfigurationManager.AppSettings["BundleTable.EnableOptimizations"], out b);
                return b;
            }
        }

        public static bool EnabledAutomaticMigrationsDatabase
        {
            get
            {
                bool value = false;
                bool.TryParse(System.Configuration.ConfigurationManager.AppSettings["EnabledAutomaticMigrationsDatabase"], out value);
                return value;
            }
        }


        /// <summary>
        /// 表示当前 WEB 应用程序的标题名。
        /// </summary>
        public static string SystemTitle
        {
            get { return "UADemo(统一身份认证平台-演示程序)"; }
        }

        /// <summary>
        /// 表示当前 WEB 应用程序的标题名缩写。
        /// </summary>
        public static string SystemTitleAbbr
        {
            get { return "UADemo"; }
        }


        /// <summary>
        /// 表示当前 WEB 应用程序的版权声明信息.
        /// </summary>
        public static string Copyright
        {
            get { return "江西赛宝网络科技有限公司"; }
        }


        /// <summary>
        /// 获取应用程序身份验证服务的参数设置信息。
        /// </summary>
        public static AuthorizeSettings AuthorizeSettings
        {
            get { return AuthorizeUtility.Settings; }
        }


        public static void InitializeDatabase()
        {
            if (EnabledAutomaticMigrationsDatabase)
            {
                UADbContext.Initialize();
            }
        }
    }
}
